package com.xujie.sportsmeeting.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xujie.sportsmeeting.entity.EventJudge;
import com.xujie.sportsmeeting.entity.Judge;
import com.xujie.sportsmeeting.entity.CompetitionEvent;

import java.util.List;

/**
 * 项目裁判员关联服务接口
 */
public interface EventJudgeService extends IService<EventJudge> {

    /**
     * 为项目分配裁判员
     * @param eventId 项目ID
     * @param judgeIds 裁判员ID列表
     * @return 是否成功
     */
    boolean assignJudgesToEvent(Long eventId, List<Long> judgeIds);

    /**
     * 移除项目的裁判员分配
     * @param eventId 项目ID
     * @param judgeIds 裁判员ID列表
     * @return 是否成功
     */
    boolean removeJudgesFromEvent(Long eventId, List<Long> judgeIds);

    /**
     * 获取项目分配的裁判员列表
     * @param eventId 项目ID
     * @return 裁判员列表
     */
    List<Judge> getJudgesByEventId(Long eventId);

    /**
     * 获取裁判员分配的项目列表
     * @param judgeId 裁判员ID
     * @return 项目列表
     */
    List<CompetitionEvent> getEventsByJudgeId(Long judgeId);

    /**
     * 检查裁判员是否已分配给指定项目
     * @param eventId 项目ID
     * @param judgeId 裁判员ID
     * @return 是否已分配
     */
    boolean isJudgeAssignedToEvent(Long eventId, Long judgeId);
}
